

#include "iostream"
#include "vector"
#include "unordered_map"
#include "unordered_set"
#include "algorithm"
#include "string"
#include "list"
#include "string.h"

class OneLoop {
public:
    std::string s  ="0123456789";
    std::string tag="0000000000";

    int cnt=0;
    int tar=0;

    bool dfs(int depth){
        if(depth==10){
            cnt++;
            if(cnt==tar){
                return true;
            }
            return false;
        }

        for(int i=0;i<10;i++){
            if(tag[i]=='0'){

                tag[i]='1';
                s[depth]=i+'0';
                if(dfs(depth+1)){
                    return true;
                }
                tag[i]='0';
            }
        }
        return false;
    }
    bool run(int a
    ) {
        tar=a;
        dfs(0);
        std::cout<<s<<std::endl;
        return true;
    }
};

class Solution {
public:
    void run() {

        bool first = true;
        int a, b, c, d, e;
//        std::cin >> a;

while (std::cin>>a) {
            OneLoop l;
            if (!l.run(a)) {
//                return;
            }
        }


    }
};

int main() {
//    bool cur_num= true;
    Solution().run();
    return 0;
}

